Extract preview/sync GitHub Actions#4897
Conversation
037a389 to
79657eb
Compare
Observability diff (vs staging)Show diffdiff --git a/tmp/remote-canon.Nq1dRP/dashboards/boxel-status/indexing.json b/tmp/committed-canon.XjD11i/dashboards/boxel-status/indexing.json
index a39cf75..25280b9 100644
--- a/tmp/remote-canon.Nq1dRP/dashboards/boxel-status/indexing.json
+++ b/tmp/committed-canon.XjD11i/dashboards/boxel-status/indexing.json
@@ -69,6 +69,10 @@
"uid": "cef5v5sl9k7i8f"
},
"description": "System-wide operator action: queue a full reindex across every realm. The button disables itself while a `full-reindex` orchestration job is already pending or running. Per-realm reindex moved to the Realms dashboard. Click POSTs with `Authorization: Bearer ${grafana_secret}` (substituted from SSM at apply time, CS-10929).",
+ "fieldConfig": {
+ "defaults": {},
+ "overrides": []
+ },
"gridPos": {
"h": 8,
"w": 24,
(Run: https://github.com/cardstack/boxel/actions/runs/26161560752) |
Grafana previewPreview deployed for 1 dashboard in the staging Grafana.
Dashboards: Preview is torn down automatically when this PR is closed or merged. (Run: https://github.com/cardstack/boxel/actions/runs/26161560825) |
Preview deploymentsHost Test Results 1 files ±0 1 suites ±0 1h 31m 58s ⏱️ - 4m 2s Results for commit a82ac3f. ± Comparison against earlier commit 434ac24. Realm Server Test Results 1 files ±0 1 suites ±0 8m 13s ⏱️ +16s Results for commit a82ac3f. ± Comparison against earlier commit 434ac24. For more details on these errors, see this check. |
79657eb to
d7095f0
Compare
Extract the publish-preview-realm / unpublish-preview-realm / workspace-sync composite actions so `boxel-catalog`, `boxel-home`, `boxel-skills` (and any future consumer) can stop maintaining duplicated bespoke preview-realm workflows. This branch is layered on top of cs-11161 (#4851) so the bundled demo workflow can exercise `boxel realm publish` / `unpublish` / `push` end-to-end against the CLI commits in this branch's ancestry. Once #4851 lands, GitHub will auto-rebase this PR's base onto main and the diff will stay clean against main. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d7095f0 to
434ac24
Compare
Node's fetch always reports `TypeError: fetch failed` as `error.message`; the actual transport reason (ECONNRESET, TLS handshake error, undici socket error, ENOTFOUND, GOAWAY, etc.) is stashed on `error.cause` and was being silently dropped by the publish/unpublish error paths. That left the action-demo workflow showing a bare "Error: fetch failed" with no way to distinguish a real network issue from, say, a self-signed cert problem against the published-realm subdomain. Wrap the three swallowed sites: - `publish.ts` `.action()` catch: log `err.cause` separately if present. - `publish.ts` `waitForPublishedRealmReady`: capture cause into the `lastError` string so the readiness-timeout error reports the same thing the polling loop kept hitting. - `unpublish.ts` `unpublishRealm`: embed cause into the `result.error` string the CLI surfaces. This is the diagnostic the action-demo on #4897 needs to figure out why publish hangs at the initial POST despite the server-side mount completing successfully. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
I noticed that
boxel-homePR previews are broken:This is because the interface to
_publish-realmchanged:HTTP 202 is actually expected now!
I also noticed that
boxel-catalog,boxel-home, andboxel-skillswere all using duplicative bespoke workflows to accomplish similar tasks, with use ofcardstack/boxel-cli, npm Boxel CLI, and the old workspace sync CLI.This extracts the preview/sync workflows into the monorepo so they can be used from external repositories and tested in-monorepo in case of interface changes like the above.